import json

def parse_nested_json(data):
    if isinstance(data, dict):
        # 处理字典中的每个值
        return {key: parse_nested_json(value) for key, value in data.items()}
    elif isinstance(data, list):
        # 处理列表中的每个元素
        return [parse_nested_json(item) for item in data]
    elif isinstance(data, str):
        # 尝试解析字符串中的JSON
        try:
            parsed = json.loads(data)
            return parse_nested_json(parsed)
        except json.JSONDecodeError:
            return data
    else:
        return data

def convert_json():
    # 读取原始文件
    with open('data.json', 'r', encoding='utf-8') as f:
        content = f.read()
    
    try:
        # 第一次解析 - 去除外层引号
        first_parse = json.loads(content)
        
        # 第二次解析 - 处理内部JSON字符串
        second_parse = json.loads(first_parse)
        
        # 递归处理所有嵌套的JSON字符串
        final_json = parse_nested_json(second_parse)
        
        # 将处理后的JSON写入新文件，使用缩进格式化
        with open('converted_data.json', 'w', encoding='utf-8') as f:
            json.dump(final_json, f, ensure_ascii=False, indent=2)
            
        print("转换成功！数据已保存到 converted_data.json")
        
    except json.JSONDecodeError as e:
        print(f"JSON解析错误: {e}")
    except Exception as e:
        print(f"发生错误: {e}")

if __name__ == "__main__":
    convert_json() 